package com.ftg.learn.day16.aop;

import org.springframework.stereotype.Component;

/**
 * 学习Aop功能
 * 目标类 ： 原始的java类.
 * 切面类  ： 也是一个java类，这个类里面有目标类切开以后织入的代码
 * 切点  ：  切面类里面的方法
 * 连接点 ： 目标类中的方法
 * 织入 ：
 * 通知  ：
 *    前置通知  ： 在目标类方法执行前执行
 *    后置通知  ： 在目标类方法执行后执行
 *    环绕通知  ： 在目标类方法执行前和执行后执行
 *    异常通知  ： 在目标类方法抛出异常时执行
 *    返回通知  ： 在目标类方法返回值后执行
 * AOP ： 不破坏原代码结构的情况下 :
 * @author 布衣
 */
@Component
public class LearnAop {

    //代理模式  ：

    //aop :  面向切面编程  --->

    public int add(int x,int y ){
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            throw new RuntimeException(e);
        }
        System.out.println("你看看我是，我是目标类里面的方法");
        return x+y;
    }


}
